|
Speculative execution is an optimization technique where a computer system performs some task that may not be actually needed. The main idea is to do work ''before'' it is known whether that work will be needed at all, so as to prevent a delay that would have to be incurred by doing the work ''after'' it is known whether it is needed. If it turns out the work was not needed after all, any changes made by the work are reverted and the results are ignored. The objective is to provide more concurrency if extra resources are available. This approach is employed in a variety of areas, including branch prediction in pipelined processors, prefetching memory and files, and optimistic concurrency control in database systems.〔(Lazy and Speculative Execution ) Butler Lampson Microsoft Research OPODIS, Bordeaux, France 12 December 2006〕〔 〕 == Overview == Modern pipelined microprocessors use speculative execution to reduce the cost of conditional branch instructions using schemes that predict the execution path of a program based on the history of branch executions.〔 In order to improve performance and utilization of computer resources, instructions can be scheduled at a time when it has not yet been determined that the instructions will need to be executed, ahead of a branch. In compiler optimization for multiprocessing systems, speculative execution involves an idle processor executing code in the next processor block, in case there is no dependency on code that could be running on other processors. The benefit of this scheme is reducing response time for individual processors and the overall system. However, there is a net penalty for the average case, since in the case of a bad bet, the pipelines should be flushed. The compiler is limited in issuing speculative execution instruction, since it requires hardware assistance to buffer the effects of speculatively-executed instructions. Without hardware support, the compiler could only issue speculative instructions which have no side effects in case of wrong speculation. 抄文引用元・出典: フリー百科事典『 ウィキペディア(Wikipedia)』 ■ウィキペディアで「Speculative execution」の詳細全文を読む スポンサード リンク
|